package pe.edu.upc.dew.grupo3a.web;

import java.io.IOException;
import java.util.List;

import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.context.support.WebApplicationContextUtils;

import pe.edu.upc.dew.grupo3a.model.Cliente;
import pe.edu.upc.dew.grupo3a.model.Pelicula;
import pe.edu.upc.dew.grupo3a.service.ClienteService;
import pe.edu.upc.dew.grupo3a.service.FuncionService;
import pe.edu.upc.dew.grupo3a.service.PeliculaService;
import pe.edu.upc.dew.grupo3a.service.SalaService;

/**
 * Servlet implementation class RegistroServLet
 */
public class RegistroServLet extends HttpServlet {
	private static final long serialVersionUID = 1L;
	private ClienteService clienteService;
	private PeliculaService peliculaService;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public RegistroServLet() {
        super();
        // TODO Auto-generated constructor stub
    }

	@Override
	public void init(ServletConfig config) throws ServletException	{
			this.clienteService = WebApplicationContextUtils
			.getWebApplicationContext(config.getServletContext())
			.getBean("clienteService", ClienteService.class);
			//
//			this.salaService = WebApplicationContextUtils
//			.getWebApplicationContext(config.getServletContext())
//			.getBean("salaService", SalaService.class);
//			//
			this.peliculaService = WebApplicationContextUtils
			.getWebApplicationContext(config.getServletContext())
			.getBean("peliculaService", PeliculaService.class);
			
	}    
    
	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		String action = request.getParameter("accion");
		if(action.equals("buscar")){
			String dni = request.getParameter("txt_DniToSearch");
			Cliente cliente = clienteService.getClientePorDNI(dni);
			request.setAttribute("cliente", cliente);
			if(cliente==null)action="bucar_error";
		} else if(action.equals("grabar")){
			String nombres = request.getParameter("txt_Nombres");
			String apellidos = request.getParameter("txt_Apellidos");
			int edad = Integer.parseInt(request.getParameter("txt_Edad"));
			String sexo = request.getParameter("cmb_Sexo");
			String dni = request.getParameter("txt_Dni");
			String correo = request.getParameter("txt_email");
			String clave = request.getParameter("txt_Clave");
			String codigo = request.getParameter("txt_Codigo");
			//
			Cliente cliente = new Cliente();
			cliente.setApellidos(apellidos);
			cliente.setClave(clave);
			cliente.setCodigocliente(codigo);
			cliente.setCorreo(correo);
			cliente.setDni(dni);
			cliente.setEdad(edad);
			cliente.setNombres(nombres);
			cliente.setSexo(sexo);
			//
			if(clienteService.getClientePorDNI(dni)!=null)
				clienteService.actualizarCliente(cliente);
			else
				clienteService.insertarCliente(cliente);
			}
			action = "Grabar_OK";
		//
		List<Pelicula> peliculasEstreno = peliculaService.getPeliculasPorEstado("Estreno");
		List<Pelicula> peliculasPorEstrenar = peliculaService.getPeliculasPorEstado("Proximamente");
		//
		request.setAttribute("peliculasEstreno", peliculasEstreno);
		request.setAttribute("peliculasPorEstrenar", peliculasPorEstrenar);
		request.setAttribute("accion", action);
		//
		request.getRequestDispatcher("registro.jsp").forward(request,response);
	}

}
